Theory and algorithms for slicing unstructured programs
نویسندگان
چکیده
Program slicing identifies parts of a program that potentially affect a chosen computation. It has many applications in software engineering, including maintenance, evolution and re-engineering of legacy systems. However, these systems typically contain programs with unstructured control-flow, produced using goto statements; thus, effective slicing of unstructured programs remains an important topic of study. This paper shows that slicing unstructured programs inherently requires making trade-offs between three slice attributes: termination behaviour, size, and syntactic structure. It is shown how different applications of slicing require different tradeoffs. The three attributes are used as the basis of a three-dimensional theoretical framework, which classifies slicing algorithms for unstructured programs. The paper proves that for two combinations of these dimensions, no algorithm exists and presents algorithms for the remaining six combinations. q 2005 Elsevier B.V. All rights reserved.
منابع مشابه
New Algorithm for Slicing Unstructured Pro - grams
SUMMARY Program slicing is an automatic program abstraction technique whose many applications include software maintenance, re{engineering and comprehension, all of which rely crucially upon the precision of the slicing algorithm used. When slicing is applied to maintenance problems, the programs to be sliced are typically legacy systems, often written in older, `unstructured' programming style...
متن کاملThe Application of Term Rewriting Systems for Expressing Generic Program Slicing Algorithms
Program slicing is a technique in software engineering for isolating parts of a program that influence the value of a variable or some other arbitrary expression in that program. There exist many different slicing algorithms, with specific techniques for a variety of language features such as procedures, unstructured control flow, composite data types, pointers, concurrency, etc. This paper sho...
متن کاملProgram Specialization via Program Slicing
This paper concerns the use of program slicing to perform a certain kind of program-specialization operation. We show that the specialization operation that slicing performs is different from the specialization operations performed by algorithms for partial evaluation, supercompilation, bifurcation, and deforestation. To study the relationship between slicing and these operations in a simplifie...
متن کاملSlicing Concurrent Java Programs
Although many slicing algorithms have been proposed for object-oriented programs, no slicing algorithm has been proposed which can be used to handle the problem of slicing concurrent Java programs correctly. In this paper, we propose a slicing algorithm for concurrent Java programs. To slice concurrent Java programs, we present a dependence-based representation called multithreaded dependence g...
متن کاملDynamic Information Flow Analysis and Dynamic Slicing (Extended Version)
Information flow analysis is concerned with validating the security of information flows between objects in a program and between the program and the outside world. This paper presents a practical approach to dynamic information flow analysis that can be used in software testing or intrusion detection and that facilitates debugging of insecure flows. The proposed approach provides capabilities ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Information & Software Technology
دوره 48 شماره
صفحات -
تاریخ انتشار 2006